import type { Page } from 'playwright-core'
import type { ITask } from '../task-executor'
import mainLogger from '../../logger'

/**
 * 示例任务 - 访问百度并搜索
 */
export class ExampleTask implements ITask {
  name = '百度搜索示例'

  async execute(page: Page): Promise<void> {
    try {
      // 访问百度
      await page.goto('https://www.baidu.com', { timeout: 30000, waitUntil: 'networkidle' })
      mainLogger.info('已访问百度首页')

      // textarea  #chat-textarea 输入内容
      await page.fill('#chat-textarea', 'Playwright')
      mainLogger.info('已输入内容')
      // 按下回车键
      await page.press('#chat-textarea', 'Enter')
      mainLogger.info('已按下回车键')

      // 等待 30 秒
      await page.waitForTimeout(30000)

      mainLogger.info('任务执行完成')
    } catch (error) {
      const errorMessage = error instanceof Error ? error.message : String(error)
      mainLogger.error('示例任务执行失败', {
        error: errorMessage,
        stack: error instanceof Error ? error.stack : undefined
      })
      throw error
    }
  }
}
